package cn.diancan.util.images;

import java.io.File;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;

import cn.diancan.config.Config;
import cn.diancan.util.FileHandle;

public class ImageSaveUtil {
    
    /**
	 * 保存图片对象
	 * @param file
	 * @param fileFileName
	 * @return
	 * @throws Exception
	 */
	public static String saveFile(File file,String fileFileName) throws Exception{ 
	    	String filename= getFileName(fileFileName);
	    	File newFile= getNewFile(filename);
		FileHandle.copyFile(file, newFile);
		return filename;
	}
	
	/**
	 * 保存图片对象
	 * @param file
	 * @param fileFileName
	 * @return
	 * @throws Exception
	 */
	public static String saveFile(InputStream inputSt , String fileFileName) throws Exception{ 
	    String filename= getFileName(fileFileName);
	    File newFile= getNewFile(filename);
		FileHandle.copyFile(inputSt, newFile);
		return filename;
	}
	
	//等到生成的半完整路径    //可用于拼接url  和实际路径
	public static String getFileName(String fileFileName){
	    Random random = new Random();
		String today= (new SimpleDateFormat("yyyyMMdd")).format(new Date());
		int idxlast= fileFileName.lastIndexOf(".");
		String lastName=".png";
		if(-1!=idxlast){
		    lastName=fileFileName.substring(idxlast);
		}
		String filename= "uploadImage/" +today+"/"+ random.nextInt(10000)+ UUID.randomUUID() +lastName; 
		return filename;
	}
	
	//根据这个半完整路径可以 得到实际路径（File）
	public static File getNewFile(String filename){
	    	File newFile = new File(Config.dir.getRootpath()+"/"+filename);
		if(!newFile.getParentFile().exists()){
		    newFile.getParentFile().mkdirs();
		}
		return newFile;
	}
	
	
}
